package br.unb.cic.algostep.leitor;
/*
 * Modela um token da linguagem da tabela de instru�oes.
 * 
 * @author Andre Gasparinetti
 */


public class TokenTabela {
	public static final int IDTKN_COMENTARIO 			= 0;
	public static final int IDTKN_NOME					= 1;
	public static final int IDTKN_PONTO_VIRGULA 		= 2;
	public static final int IDTKN_INTEIRO	 			= 3;
	public static final int IDTKN_REAL	 				= 4;
	public static final int IDTKN_BOOLEAN	 			= 5;
	public static final int IDTKN_CHAR		 			= 6;
	public static final int IDTKN_STRING				= 7;
	public static final int IDTKN_ATRIBUICAO			= 8;
	public static final int IDTKN_VIRGULA 				= 9;
	public static final int IDTKN_ARRAY 				= 10;
	public static final int IDTKN_RECORD				= 11;

	
	int id_token;
	String valor_token;
	
	public TokenTabela(int id_token, String valor_token){
		this.id_token = id_token;
		this.valor_token = valor_token;
	}
	
	public int getIdToken(){
		return this.id_token;
	}
	
	public String getValorToken(){
		return this.valor_token;
	}
	
	
	/*
	 * Métodos usados somente para tokens de tipo record
	 */
	public String getNomeVar() {
		int i;
		String var = "";
		for (i = 0; this.valor_token.charAt(i) != '.'; i++) {
			var += this.valor_token.charAt(i);
		}
		return var;
	}
	
	public String getNomeCampo() {
		int i;
		String campo = "";
		for (i = 0; this.valor_token.charAt(i) != '.'; i++);
		i++;
		for (; i < this.valor_token.length(); i++) {
			campo += this.valor_token.charAt(i);
		}
		return campo;
	}
}
